Ga naar hoofdinhoud

Plan-ahead API

tip

De Plan-ahead API is bedoeld om schema's van tevoren te verzenden. Voor live bediening, zie in plaats daarvan Live MQTT-besturing.

Wat je nodig hebt

  1. Een API-gebruikersnaam en -wachtwoord. Je kunt je Insights-account hiervoor gebruiken, of een API-account aanvragen door een e-mail te sturen naar support@eniris.be, met duidelijke vermelding van je apparaatsn.
  2. Python-ontwikkelomgeving (of een andere MQTT-client). Deze gids gebruikt een basisvoorbeeld geschreven in Python om je te helpen beginnen met MQTT en het verzenden van commando's. We raden aan om Python te gebruiken voor het gebruiksgemak, maar elke andere MQTT-client wordt ondersteund.

Eerste configuratie (Startpunt voor nieuwe gebruikers)

1. Vind de apparaatsn van de apparaten die je wilt bedienen

De apparaatsn (ook wel nodeId genoemd) is een unieke identifier voor elk apparaat in ons systeem en wordt gebruikt bij het verzenden van commando's naar apparaten.

Op dit moment is de gemakkelijkste manier om je ID's te krijgen door naar te navigeren: http://<CONTROLLER_IP>/debugger

Vouw het 'Metadata'-vak uit en noteer elke nodeId van alle apparaten die je wilt bedienen. Je hebt deze ID's nodig in een latere stap.

Afbeelding 1

2. Voeg je apparaten toe

Login bij de inbedrijfstellingsinterface en zorg ervoor dat de apparaten zijn toegevoegd aan de SmartgridOne Controller.

3. Voeg het externe API-signaal toe

Afbeelding 1
Afbeelding 1
Afbeelding 1
Afbeelding 1

4. Voer het verzamelaarstoken in

Voer eenvoudig het serienummer van de SmartgridOne Controller hier in en klik op verzenden.

5. Selecteer apparaten om in te sluiten

Op deze pagina heb je de optie om apparaten voor afstandsbediening in te sluiten of uit te sluiten. Zorg ervoor dat je alle selectievakjes van de apparaten die je wilt inbegrepen hebt gemarkeerd.

Afbeelding 1

6. Databron is toegevoegd

De afstandsbedieningsinterface is nu geactiveerd op de SmartgridOne Controller. Je kunt nu beginnen met het verzenden van je commando's naar de apparaten.

waarschuwing

Vergeet niet om een fallback-regime in te stellen op de SmartgridOne Controller! Een lokale besturingsmodus moet worden geconfigureerd naast de externe API-signalen die je verzendt. Lokale controle wordt gebruikt als fallback in het geval dat de SmartgridOne Controller internet verliest of dat er andere oorzaken zijn waardoor het API-signaal de SmartgridOne Controller niet kan bereiken.

Verzend afstandsbedieningscommando's met Python

Hieronder staat een Python-codefragment over hoe je zonne-energie of batterij kunt bedienen.

tip

Bekijk het document Applicatiehandleiding - Afstandsinstellingen voor een completere uitleg met alle beleidslijnen.

Vereist pakket: pip install eniris

# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone

# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # YYYY-MM-DDTHH:MM:SS+00:00
SN = '<REPLACE>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Standaard (zelfconsumptie); 2: Volg-instelling


# %% Start beperking
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Volgend commando tot: {curtail_until}')
apiUsername = "<REPLACE>"
apiPassword = "<REPLACE>"

# Maak een API-driver en een puntenschrijver met de gewenste functionaliteit
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<REPLACE>',
}

writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Verzonden')

Let speciale aandacht op:

  • De 'COMMAND_UNTIL': Dit is een tijdzone-bewuste timestamp die het eindtijdstip van je commando aangeeft.
  • De 'COMMAND': Dit moet worden veranderd afhankelijk van welk commando je wilt uitvoeren.
    • Bijv.: voor batterijen, beleid 2 met powerSetpoint_W op 1000 zal de batterij opladen met 1 kW.
    • Voor zonne-energie, beleid 2 met powerSetpoint_W op 0 zal de zonneproductie uitschakelen.
    • Nadat je commando is afgelopen, valt het automatisch terug naar de standaardbesturing (zoals geconfigureerd in de SmartgridOne Controller).
    • (meer geavanceerde beleidslijnen worden ondersteund, maar zijn nog niet toegevoegd aan deze gids).
  • De 'tags'-variabele: Dit moet worden gewijzigd volgens SmartgridOne Controller SN, waarbij nodeId moet worden ingesteld op de apparaatsn die eerder in deze tutorial is geëxtraheerd.
tip

Bekijk het document Applicatiehandleiding - Afstandsinstellingen voor een completere uitleg met alle beleidslijnen.